package com.wx.qrcode.common.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * 创建二维码参数
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WxCreateQrCodeDTO {
    public final static String QR_STR_SCENE = "QR_STR_SCENE";
    public final static String SCENE_STR = "scene_str";
    public final static Long EXPIRE_SECONDS = 180L;

    /**
     * 该二维码有效时间，以秒为单位。 最大不超过2592000（即30天），此字段如果不填，则默认有效期为60秒。
     */
    private Long expire_seconds;
    /**
     * 二维码类型，QR_SCENE为临时的整型参数值，QR_STR_SCENE为临时的字符串参数值，QR_LIMIT_SCENE为永久的整型参数值，QR_LIMIT_STR_SCENE为永久的字符串参数值
     */
    private String action_name;
    /**
     * 二维码详细信息
     */
    private Map<String,Object> action_info;
    // scene_id 场景值ID，临时二维码时为32位非0整型，永久二维码时最大值为100000（目前参数只支持1--100000）
    // scene_str 场景值ID（字符串形式的ID），字符串类型，长度限制为1到64

    public WxCreateQrCodeDTO(Map<String, Object> action_info) {
        this.expire_seconds = EXPIRE_SECONDS;
        this.action_name = QR_STR_SCENE;
        this.action_info = action_info;
    }
}